/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package basedatos;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Date;
import java.util.logging.Level;
import java.util.logging.Logger;
import logica.cCliente;
import utilidades.UConexion;

/**
 *
 * @author Alberto
 */
public class GestorClientes {

    private Connection con = null;
    private PreparedStatement ps = null;
    private Statement st = null;
    private ResultSet rs = null;

    public GestorClientes() {
        con = UConexion.getConexion();

    }

    public void insertarCliente(cCliente c) {
        String query = "INSERT INTO clientes (cod_cliente, nombre, apellidos, dni, direccion, localidad, provincia, codigo_postal, telefono, movil, email, fecha_alta)"
                + " VALUES ( ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , NOW())";
//        System.out.println("insertarCliente() query=" + query);      
//        String query = "INSERT INTO clientes (cod_cliente, nombre, apellidos, dni, direccion, localidad, provincia, codigo_postal, telefono, movil, email, fecha_alta) VALUES ('" + c.getCodCliente() + "',"
//                + "'" + c.getNombre() + "','" + c.getApellidos() + "','" + c.getDni() + "','" + c.getDireccion() + "','" + c.getLocalidad() + "','" + c.getProvincia() + "','" + c.getCodigoPostal() + "','" + c.getTelefono() + "','" + c.getMovil() + "','" + c.getEmail() + "', NOW())";
        try {
            ps = con.prepareStatement(query);
            ps.setInt(1, c.getCodCliente());
            ps.setString(2, c.getNombre());
            ps.setString(3, c.getApellidos());
            ps.setString(4, c.getDni());
            ps.setString(5, null);
            ps.setString(6, null);
            ps.setString(7, null);
            ps.setInt(8, 0);
            ps.setString(9, null);
            ps.setString(10, c.getMovil());
            ps.setString(11, null);
            ps.execute(query);
        } catch (SQLException ex) {
            Logger.getLogger(GestorClientes.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

    public Collection<cCliente> getTodos() {
        try {
            Collection<cCliente> clientes = new ArrayList<cCliente>();
            String query = "SELECT cod_cliente, nombre, apellidos, dni, direccion, localidad, provincia, codigo_postal, telefono, movil, email, fecha_alta from clientes order by cod_cliente";
            st = con.createStatement();
            rs = st.executeQuery(query);




            while (rs.next()) {
                cCliente c = new cCliente();
                c.setNombre(rs.getString("nombre"));
                c.setApellidos(rs.getString("apellidos"));
                c.setDni(rs.getString("dni"));
                c.setDireccion(rs.getString("direccion"));
                c.setLocalidad(rs.getString("localidad"));
                c.setProvincia(rs.getString("provincia"));
                c.setCodigoPostal(rs.getInt("codigo_postal"));
                c.setTelefono(rs.getString("telefono"));
                c.setMovil(rs.getString("movil"));
                c.setEmail(rs.getString("email"));
                c.setFechaAlta(rs.getDate("fecha_alta"));
                clientes.add(c);
            }
            return clientes;
        } catch (SQLException ex) {
            Logger.getLogger(GestorClientes.class.getName()).log(Level.SEVERE, null, ex);
            return null;
        }
    }

    public Collection<cCliente> buscar(String text) {
        String query = "SELECT * from clientes where dni like '" + text + ";";

        return null;
    }
}
//    public void borrarCliente(cCliente c) throws SQLException {
//       String query = "DELETE FROM clientes WHERE cod_cliente= '" + c.getCodCliente() + "'";
//        Connection con = null;
//        Statement pStmt = null;
//        try {
//            con = getConnection();
//            pStmt = con.createStatement();
//            pStmt.execute(query);
//
//        } catch (Exception e) {
//            /* CAPTURAR EXCEPTION */
//        } finally {
//            if (pStmt != null) {
//                try {
//                    pStmt.close();
//                } catch (SQLException e) {
//                }
//            }
//            if (con != null) {
//                try {
//                    con.close();
//                } catch (SQLException e) {
//                }
//            }
//        }
//    }
//
//    public void actulaizarCliente(cCliente c) throws SQLException {
//        String query = "UPDATE clientes SET nombre= '" + c.getNombre() + "', apellidos='" + c.getApellidos() + "', dni='" + c.getDni() + "', direccion='" + c.getDireccion() + "', localidad='" + c.getLocalidad() + "', provincia='" + c.getProvincia() + "', codigo_postal='" + c.getCodigoPostal() + "', telefono='" + c.getTelefono() + "', movil='" + c.getMovil() + "', email='" + c.getEmail()
//                + "' where cod_cliente= '" + c.getCodCliente() + "'";
//        Connection con = null;
//        Statement pStmt = null;
//        try {
//            con = getConnection();
//            pStmt = con.createStatement();
//            pStmt.executeUpdate(query);
//
//        } catch (Exception e) {
//            /* CAPTURAR EXCEPTION */
//        } finally {
//            if (pStmt != null) {
//                try {
//                    pStmt.close();
//                } catch (SQLException e) {
//                }
//            }
//            if (con != null) {
//                try {
//                    con.close();
//                } catch (SQLException e) {
//                }
//            }
//        }
//    }
//
//    public Collection<cCliente> getCliente() {
//        Collection<cCliente> clientes = new ArrayList<cCliente>();
////        System.out.println("Clientes "+clientes.size());
//        String query = "SELECT cod_cliente, nombre, apellidos, dni, direccion, localidad, provincia, codigo_postal, telefono, movil, email, fecha_alta from clientes order by cod_cliente";
//// //        Collection<c       System.out.println(" QUERY: "+query);
//        Connection con = null;
//        Statement pStmt = null;
//        try {
//            con = getConnection();
//            pStmt = con.createStatement();
//            ResultSet set = pStmt.executeQuery(query);
//            while (set.next()) {
//                cCliente c = new cCliente();
//                c.setCodCliente(set.getInt("cod_cliente"));
//                c.setNombre(set.getString("nombre"));
//                c.setApellidos(set.getString("apellidos"));
//                c.setDni(set.getString("dni"));
//                c.setDireccion(set.getString("direccion"));
//                c.setLocalidad(set.getString("localidad"));
//                c.setProvincia(set.getString("provincia"));
//                c.setCodigoPostal(set.getInt("codigo_postal"));
//                c.setTelefono(set.getString("telefono"));
//                c.setMovil(set.getString("movil"));
//                c.setEmail(set.getString("email"));
//                c.setFechaAlta(set.getDate("fecha_alta"));
//                clientes.add(c);
//            }
//        } catch (Exception e) {
//            System.out.println("ERROR: " + e.getMessage());
//            /* CAPTURAR EXCEPTION */
//        } finally {
//            if (pStmt != null) {
//                try {
//                    pStmt.close();
//                } catch (SQLException e) {
//                }
//            }
//            if (con != null) {
//                try {
//                    con.close();
//                } catch (SQLException e) {
//                }
//            }
//            return clientes;
//        }
//    }
//
//    public boolean existeCliente(int codCliente) {
//        String query = "SELECT * from clientes where cod_cliente = '" + codCliente + "'";
//        Connection con = null;
//        Statement pStmt = null;
//        try {
//            con = getConnection();
//            pStmt = con.createStatement();
//            ResultSet set = pStmt.executeQuery(query);
//            if (set.next()) {
//                return true;
//            }
//            return false;
//        } catch (Exception e) {
//            return false;
//        } finally {
//            if (pStmt != null) {
//                try {
//                    pStmt.close();
//                } catch (SQLException e) {
//                }
//            }
//            if (con != null) {
//                try {
//                    con.close();
//                } catch (SQLException e) {
//                }
//            }
//        }
//    }

